
public class Persoon {
	private int BSN;
	private String voornaam, achternaam;
	private char geslacht;
	private Datum geboorteDatum;
	
	//Constructor
	
	/**
	 * Constructor voor de klasse Persoon
	 */
	public Persoon( int BSN, String voornaam, String achternaam, char geslacht, int dag, int maand, int jaar ) {
		this.BSN = BSN;
		this.voornaam = voornaam;
		this.achternaam = achternaam;
		this.geslacht = geslacht;
		this.geboorteDatum = new Datum( dag, maand, jaar );
	}
	
	//Setters
	
	/**
	 * Set de variable BSN.
	 * Dit moet een Integer zijn.
	 */
	public void setBSN( int BSN ) {
		this.BSN = BSN;
	}
	
	/**
	 * Set de variable voornaam.
	 * Dit moet een String zijn.
	 */
	public void setVoornaam( String voornaam ) {
		this.voornaam = voornaam;
	}
	
	/**
	 * Set de variable achternaam.
	 * Dit moet een String zijn.
	 */
	public void setAchternaam( String achternaam ) {
		this.achternaam = achternaam;
	}
	
	/**
	 * Set de variable geboorteDatum.
	 * Dit gaat aan de hand van een dag, maand en jaar.
	 * Vervolgens wordt er d.m.v. de klasse Datum een waarde toegekend aan geboorteDatum
	 */
	public void setGeboorteDatum( int dag, int maand, int jaar ) {
		this.geboorteDatum = new Datum( dag, maand, jaar );
	}
	
	/**
	 * Set de variable geslacht.
	 * Dit moet een char zijn.
	 */
	public void setGeslacht( char geslacht ) {
		this.geslacht = geslacht;		
	}
	
	//Getters
	
	/**
	 * Returnd de waarde van BSN.
	 * Deze waarde is een Integer.
	 */
	public int getBSN() {
		return BSN;
	}
	
	/**
	 * Returnd de waarde van voornaam.
	 * Deze waarde is een String.
	 */
	public String getVoornaam() {
		return voornaam;
	}
	
	/**
	 * Returnd de waarde van achternaam.
	 * Deze waarde is een String.
	 */
	public String getAchternaam() {
		return achternaam;
	}
	
	/**
	 * Returnd de waarde van geslacht.
	 * Deze waarde is een String.
	 * Als de waarde van geslacht anders is dan een M/m of een V/m dan wordt er onbekend gereturnd.
	 * Als de waarde een M/m is wordt er Man gereturnd en als de waarde V/v is dan wordt er Vrouw gereturnd.
	 */
	public String getGeslacht() {
		String ges = Character.toString( geslacht ); //Convert char to String
		if( ges.equalsIgnoreCase( "m" ) || ges.equalsIgnoreCase( "v" ) ) { //Vergelijk en kijk niet naar hoofdletters
			if( ges.equalsIgnoreCase( "m" ) ) {
				return "Man";
			} else {
				return "Vrouw";
			}
		} else {
			return "Onbekend" ;
		}
	}
	
	/**
	 * Returnd de waarde van geboorteDatum.
	 * Deze waarde is een String.
	 */
	public String getGeboorteDatum() {
		return geboorteDatum.toString();
	}
	
	/**
	 * Geeft Alle variable terug in de vorm van een String.
	 */
	public String toString() {
		return 	"BSN: " + getBSN() +
				"\nVoornaam: " + getVoornaam() +
				"\nAchternaam: " + getAchternaam() +
				"\nGeslacht: " + getGeslacht() +
				"\nGebootedatum: " + getGeboorteDatum();
	}
}
